home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 40
/
Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso
/
Aminet
/
misc
/
emu
/
ATUtilities.lha
/
ATUtilities
/
BASIC
/
AINFO.BAS
< prev
next >
Wrap
BASIC Source File
|
2000-09-26
|
3KB
|
139 lines
$INCLUDE "REGNAMES.INC"
COLOR 14
IF CheckVector(&H49)=0 THEN
SOUND 2000,2
PRINT "FEHLER: ATUtilities File Transfer ist nicht installiert!"
GOTO ende
END IF
GOSUB CmdAuswertung
REG %AX,(&H6*256)
CALL INTERRUPT &H49
segment=REG(%ES)
offset=REG(%DI)
DEF SEG = segment
a$=a$+CHR$(0)
FOR i=1 TO LEN(a$)
POKE offset+i-1,ASC(MID$(a$,i,1))
NEXT
REG %AX,(12*256)
CALL INTERRUPT &H49
IF REG(%BX)=10000 THEN
fl=REG(%CX)
REG %AX,(14*256)
REG %BX,fl
CALL INTERRUPT &H49
IF REG(%BX)=10000 THEN
i=PEEK(offset) : j=1
PRINT "Laufwerks-Bezeichnung: ";
COLOR 11
WHILE i<>ASC(":") AND j<20
PRINT CHR$(i);
i=PEEK(offset+j)
j=j+1
WEND
PRINT ":"
PRINT ""
COLOR 14
REG %BX,fl
REG %AX,(15*256)
CALL INTERRUPT &H49
IF REG(%BX)=10000 THEN
COLOR 14 : PRINT "Soft-Fehler: "; : COLOR 11 : PRINT PEEKI(offset+0)
COLOR 14 : PRINT "Unit-Nummer: "; : COLOR 11 : PRINT PEEKI(offset+4)
total&=PEEKL(offset+12)
used&=PEEKL(offset+16)
free&=total&-used&
p.free=100&*free&/total&
p.used=100&*used&/total&
bytes&=PEEKL(offset+20)
PRINT ""
COLOR 14 : PRINT "Freier Speicherplatz:" : COLOR 11
PRINT free&;"Blcke"
PRINT free&*bytes&/1024&;"KBytes"
PRINT p.free;"%"
PRINT ""
COLOR 14 : PRINT "Belegter Speicherplatz:" : COLOR 11
PRINT used&;"Blcke"
PRINT used&*bytes&/1024&;"KBytes"
PRINT p.used;"%"
PRINT ""
COLOR 14 : PRINT "Speicherkapazitt gesamt:" : COLOR 11
PRINT total&;"Blcke"
PRINT total&*bytes&/1024&;"KBytes"
PRINT ""
SELECT CASE PEEKL(offset+8)
CASE 80
s$="Schreibschutz aktiv"
CASE 81
s$="Probleme mit Speichermedium (Validating-Zustand)"
CASE ELSE
s$="Speichermedium kann beschrieben und gelesen werden"
END SELECT
COLOR 14 : PRINT "Laufwerksstatus: "; : COLOR 11 : PRINT s$
COLOR 14 : PRINT "Diskettentyp: "; : COLOR 11
type=PEEKL(offset+24)
FOR i=27 TO 24 STEP -1
s$=CHR$(PEEK(offset+i))
IF s$>="A" AND s$<="Z" THEN PRINT s$; ELSE PRINT " "
NEXT
PRINT ""
ELSE
SOUND 2000,2
PRINT "FEHLER: Informationen knnen nicht ermittelt werden."
END IF
ELSE
SOUND 2000,2
PRINT "FEHLER: Laufwerksname kann nicht ermittelt werden."
END IF
REG %AX,(13*256)
REG %BX,fl
CALL INTERRUPT &H49
ELSE
SOUND 2000,2
PRINT "Laufwerk existiert nicht/Zugriff verweigert."
END IF
ende:
COLOR 7
END
CmdAuswertung:
cmd$=COMMAND$
a$=cmd$
IF a$="/?" OR a$="?" THEN
GOTO argf
END IF
IF a$="" THEN
a$=STRING$(20,CHR$(0))
END IF
RETURN
argf:
SOUND 2000,2
PRINT "AInfo - Version 1.0 Copyright (C) 1993 by Thomas Dreibholz"
PRINT ""
PRINT "AInfo zeigt eine Informationstabelle ber das angegebene Laufwerk an."
PRINT "Wird kein Laufwerk angegeben, so wird das aktuelle benutzt."
PRINT ""
PRINT "Aufruf: AInfo {Laufwerk | /? | ?}"
PRINT ""
GOTO ende
FUNCTION CheckVector(num) STATIC
REG %AX,(&H35*256)+num
CALL INTERRUPT &H21
segm=REG(%ES)
offs=REG(%BX)
DEF SEG = segm
IF (segm=0) OR (PEEK(offs)=207) THEN
CheckVector=0
ELSE
CheckVector=1
END IF
END FUNCTION